#ifndef __RTSP_MODULE_H_
#define __RTSP_MODULE_H_
#include "IModule.h"
namespace sdk
{
    namespace msg
    {
        namespace mod
        {
            class RtspModule
                : public IModule
            {
            public:
                RtspModule(ModulesProxy &proxy, const std::string &msgId, const WsSession &session);
                bool doDirective(std::shared_ptr<std::string> binptr, std::optional<steady_time_point> endtime, uint32_t retryIdx) override;

            private:
                bool doStartCaptureSucceeded(std::shared_ptr<std::string> binptr);
                bool doStartCaptureFailed(std::shared_ptr<std::string> binptr);
                bool doStartTakePictureSucceeded(std::shared_ptr<std::string> binptr);
                bool doStartTakePictureFailed(std::shared_ptr<std::string> binptr);
                bool doReportTookPicture(std::shared_ptr<std::string> binptr, std::optional<steady_time_point> endtime, uint32_t retryIdx);
                bool doDoneTakePictureFailed(std::shared_ptr<std::string> binptr);
                bool pushUserOutData(std::string &json);
            };
        } // namespace mod
    }     // namespace msg
} // namespace sdk
#endif // !__RTSP_MODULE_H_